import Vue from 'vue'
import Vuex from 'vuex'

Vue.use(Vuex)

export default new Vuex.Store({
    //state中存放的就是全局共享的数据
    state: { count: 0 },
    //只有mutations中定义的函数，才有权利修改state 中的数据
    mutations: {
        //state☞当前state对象,parameter为传递进来的参数
        add(state, parameter) {
            //变更状态
            state.count += parameter
        }
    },
    actions: {
        //context new的Store对象,addAsync只负责异步操作
        //parameter为传递进来的参数 
        addAsync(context, parameter) {
            setTimeout(() => {
                //在actions中，不能直接修改state中的数据;
                //必须通过context.commit()触发某个 mutation才行
                context.commit('add', parameter)
            }, 1000)
        }
    },
    getters: {
        ShowNum: state => {
            return '当前最新的数量是【' + state.count + '】'
        }
    }
})